iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0

今天寫經典的tree traversal - inorder

inorder: 左邊先拜訪,接著中間,最後右邊。

程式碼

class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> ans;
        if(root == NULL)
            return {};
        
        stack<TreeNode*> s;
        TreeNode* curr_node = root;
        while( curr_node || !s.empty() ) {
            if (curr_node) {
                s.push(curr_node);
                curr_node = curr_node->left;
            }
            else {
                TreeNode *node = s.top();
                s.pop();
                ans.push_back(node->val);
                curr_node = node->right;
            }
        }
        return ans;
    }
};

參考:
https://ithelp.ithome.com.tw/articles/10213280
https://shubo.io/iterative-binary-tree-traversal/


上一篇
簡單了解VR頭盔中,重要且相輔相成的Eye tracking 與Foveated Rendering技術 2
下一篇
Leetcode: 98. Validate Binary Search Tree
系列文
來解數學跟刷圖論跟幾何程式題或者我突然想研究的主題33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言